1. The Field of the Invention
The present invention relates to network messaging. More specifically, the present invention relates to methods, systems and computer program products for using a portion of a request and response to maintain state information that is helpful to process the response.
2. Background and Relevant Art
Computer networks have enhanced our ability to communicate and access information by allowing one computer or device (hereinafter both referred to as a xe2x80x9ccomputing systemxe2x80x9d) to communicate over a network with another computing system using electronic messages. In order for such electronic messaging to be meaningful, the receiving computing system must process the received electronic message correctly. For example, an encrypted e-mail message must be decrypted using the proper decryption algorithm, then parsed into its various components (e.g., message body and xe2x80x9cfromxe2x80x9d, xe2x80x9ctoxe2x80x9d, xe2x80x9cccxe2x80x9d and xe2x80x9ctime sentxe2x80x9d header fields). If decryption or parsing are performed in an incorrect manner, the e-mail would not be able to be displayed properly to a user.
Often, supplemental information is necessary or helpful in order to appropriately process a received electronic message. Sometimes, that supplemental information is locally available for retrieval at the time the electronic message is received. Other times, information from another network location is accessed in order to appropriately process the received network message.
Often, much of the information needed to process an electronic message is included within the electronic message itself. For example, often the network message has a header field that includes information for processing the message. However, the number and types of network fields are often restricted to particular types of data. Including such information in header fields of the electronic message is not helpful if the information does not conform to the format required by the header fields.
One conventional technology that allows for the information to have a more flexible format involves the use of electronic xe2x80x9ccookiesxe2x80x9d. When a client navigates to a particular network site, that network site has the client store a xe2x80x9ccookiexe2x80x9d if cookies are enabled on the client. The cookie contains text information that is useful for the network site to process subsequent requests received from the client. When the client submits a subsequent request to the network site, the client browser is configured to automatically transmit the cookie to the network site as well.
Cookies are often used to provide a convenient customized experience for a client based on client preferences. For example, a weather web site may store the zip code of the client so that the web site may immediately provide the local forecast without asking again for the user to enter the zip code. Accordingly, when a cookie is included in an electronic message, the network site may use the cookie to process the electronic message. Also, the types and structure of information included in a cookie is practically unrestricted so long as that information may be expressed within the character set that is allowed by the cookie protocol, and so long as the network site is capable of interpreting the information given its type and structure.
Although cookies are useful in their operating environment, the operating environment for cookies is fairly restricted. For example, the use of cookies involves the flow of information from a browsing client to a network server. Typically, servers only provide cookies to a client so that the client may store the cookie for later return to the server. In the mean time, the client does not typically do anything else to the cookie other than store the cookie. In contrast, servers do not provide cookies to a client so that the client can use it to process an electronic message from the server. Accordingly, cookies involve only a one-way flow of information from a server to a client. In addition, cookies are typically only used in a browsing environment.
Accordingly, what is desired are mechanisms for providing information needed to process an electronic message regardless of whether the electronic message is from a client or a server, and regardless of whether the electronic message is related to a browse request.
The foregoing problems with the prior state of the art are overcome by the principles of the present invention, which are directed towards methods, systems and computer program products for processing a response to a network request using information that was echoed into the response from an echo portion of the request.
The principles of the present invention may be practiced in a network environment that includes a requesting computing system (e.g., a computer or device) that transmits an electronic request to a responding computing system. The responding computing system then sends the response to a processing computing system that processes the response to the request. The processing computer system that processes the response may be the same computing system as the requesting computing system that transmitted the request, although that need not be the case.
The requesting computing system accesses an electronic request that includes a special xe2x80x9cechoxe2x80x9d portion. The requesting computing system may access the request by receiving the request from another computing system, or by generating the request. The requesting computing system inserts information in the echo portion that would be helpful in processing a response to the request. For example, such information may include state information that describes session information or other state information that is relevant to processing the response to the request. The electronic request is then submitted to the responding computing system.
The responding computing system then processes the request to form a response to the request. During processing of the request, the responding system transplants the echo portion of the request to the response. There is no need for the responding computing system to even be able to interpret the content of the echo header. The responding computing system then transmits the response, along with the special echo portion, to the processing computing system that processes the request.
The processing computing system receives the response and extracts the information from the echo portion of the response. The processing computing system then uses the extracted information to process the request.
Consider the situation in which the requesting computing system and the processing computing system are the same. In that instance, the requesting computing system need not save the information that it provided in the echo portion of the request. Instead, the requesting computing system may not persist the information at all after submitting the request. The requesting computing system is assured that it will receive the state information needed to process the request within the response to the request itself. Accordingly, the requesting computing system may save memory in not having to store the information.
Also, the requesting computing system may be assured that it need not pause other processing to ensure that the requesting computing system will have the same state as it did when it transmitted the request. Instead, the echo portion may have a record of the relevant state of the requesting computing system as it existed at the time the request was transmitted. Accordingly, memory and processing capacity are improved.
Even if the requesting computing system that submits the request and the processing computing system that processes the response are different computing systems, the principles of the present invention still result in processing efficiencies. For example, the processing computing system need not store the information or seek the information from another site. Instead, the principles of the present invention allow a mechanism for the requesting computing system to communicate to the processing computing system any parameters that are needed or desirable to process the request. This is the case even though the requesting computing system and the processing computing system are not in direct communication, but only indirect communication through the responding computing system that receives the request from the requesting computing system, and transmits the response to the processing computing system.
Additional features and advantages of the invention will be set forth in the description that follows, and in part will be obvious from the description, or may be learned by the practice of the invention. The features and advantages of the invention may be realized and obtained by means of the instruments and combinations particularly pointed out in the appended claims. These and other features of the present invention will become more fully apparent from the following description and appended claims, or may be learned by the practice of the invention as set forth hereinafter.